#include <iostream>
using namespace std;
#include <fstream>
#include <string>
#include "./code/User.h"

//g++ iofstream.cpp ./code/User.cpp -o iofstream -Wall

int main()
{
    // ofstream ofs("./Info/user.txt", ios::out);
    // if (!ofs.is_open())
    //     perror("ofs");
    // else
    //     ofs << "尝试ddddd" << endl;
    // ofs.close();

    vector<MYPTR_T> userLib;
    for(int i =0;i<10;i++)
        userLib.push_back(make_shared<Admin>(1001 + i, "admin", "000000", 1 + i, "首次创建"));
    
    ofstream ofs("./Info/user.txt", ios::out);
    // if (!ofs.is_open())
    //     perror("ofs");

    for (auto it = userLib.begin(); it != userLib.end(); ++it)
        ofs << (*it)->serialize();
    ofs.close();

    userLib.clear();
    if (userLib.empty())
        cout << "userLib is empty" << endl;
    

    ifstream ifs("./Info/user.txt", ios::in);
    string line;
    User tmp;
    // if (!ifs.is_open())
    // {
    //     perror("ifs");
    //     return 0;
    // }
        
    
    while (getline(ifs, line))
    {
        tmp.deSerialize(line);
        userLib.push_back(make_shared<User>(tmp));
        // tmp.show();
    }
    if (userLib.empty())
        cout << "userLib is empty" << endl;
    else
        cout<<userLib.size()<<endl;

    ifs.close();
    


    return 0;
}

